<?php

/**
 * This is the model class for table "tbl_preinscripcion".
 *
 * The followings are the available columns in table 'tbl_preinscripcion':
 * @property string $preinscripcion_ingreso_periodoingreso_id
 * @property string $preinscripcion_ingreso_programaacademico_id
 * @property integer $preinscripcion_alumno_persona_tipodocumento_id
 * @property string $preinscripcion_alumno_persona_numerodocumento
 * @property string $preinscripcion_ingresocurso_id
 * @property string $preinscripcion_fecha
 * @property integer $preinscripcion_turno_id
 * @property integer $preinscripcion_turnoeleccion_id
 * @property string $preinscripcion_fechabaja
 * @property string $preinscripcion_motivobaja_id
 * @property string $preinscripcion_observacion
 * @property integer $preinscripcion_aprobocursoingreso
 * @property integer $preinscripcion_ingreso
 * @property string $preinscripcion_fechacierre
 * @property string $preinscripcion_fechaingreso
 * @property integer $preinscripcion_cursoequivalente
 * @property string $preinscripcion_creado
 * @property string $preinscripcion_creado_usuario_id
 * @property string $preinscripcion_modificado
 * @property string $preinscripcion_modificado_usuario_id
 * @property integer $preinscripcion_estado_id
 */
class PreInscripcion extends MyCActiveRecord
{
	public $preinscripcion_alumno_persona_nombres;
	public $preinscripcion_alumno_persona_apellido;
	
	public $preinscripcion_ingreso_tipoprogramaacademico_id;
	
	public $preinscripcion_alumno_nota;
	public $preinscripcion_alumno_legajo;
	public $preinscripcion_alumno_asistio;
        public $preinscripcion_alumno_promedio;
        public $preinscripcion_alumno_reprobo;
        
	public $preinscripcion_ingresoactividad_id;
        
        public $preinscripcion_tipodocumento_abreviacion;
        
        public $preinscripcion_ingresocurso_porcentajeaprobacion;
	
        public $preinscripcion_programaacademico_nombre;
        public $preinscripcion_ingreso_periodoingreso_nombre;
	/**
	 * Returns the static model of the specified AR class.
	 * @return PreInscripcion the static model class
	 */
	public static function model($className=__CLASS__)
	{
		return parent::model($className);
	}

	/**
	 * @return string the associated database table name
	 */
	public function tableName()
	{
		return 'tbl_preinscripcion';
	}

	/**
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			array('preinscripcion_ingreso_periodoingreso_id,preinscripcion_ingreso_programaacademico_id,preinscripcion_ingresocurso_id', 'required', 'on'=>'buscarCierrePlanilla'),
			array('preinscripcion_ingreso_periodoingreso_id,preinscripcion_ingreso_programaacademico_id', 'required', 'on'=>'buscarDefinicionIngresante'),
			array('preinscripcion_ingresocurso_id', 'safe', 'on'=>'buscarDefinicionIngresante'),
                        
			//array('preinscripcion_ingreso_periodoingreso_id, preinscripcion_ingreso_programaacademico_id, preinscripcion_alumno_persona_tipodocumento_id, preinscripcion_alumno_persona_numerodocumento, preinscripcion_fecha, preinscripcion_turno_id, preinscripcion_turnoeleccion_id', 'required'),
			array('preinscripcion_alumno_persona_tipodocumento_id, preinscripcion_turno_id, preinscripcion_turnoeleccion_id, preinscripcion_aprobocursoingreso, preinscripcion_ingreso, preinscripcion_cursoequivalente,preinscripcion_cursoequivalente, preinscripcion_motivobaja_id, preinscripcion_estado_id', 'numerical', 'integerOnly'=>true),
			array('preinscripcion_ingreso_periodoingreso_id, preinscripcion_ingreso_programaacademico_id, preinscripcion_ingresocurso_id, preinscripcion_creado_usuario_id, preinscripcion_modificado_usuario_id', 'length', 'max'=>20),
			array('preinscripcion_alumno_persona_numerodocumento', 'length', 'max'=>50),
			array('preinscripcion_observacion', 'length', 'max'=>255),
			array('preinscripcion_fechabaja, preinscripcion_fechacierre, preinscripcion_fechaingreso', 'safe'),
			array('preinscripcion_ingresocurso_id','validateCurso','on'=>'inscripcion'),
			
			array('preinscripcion_turno_id,preinscripcion_turnoeleccion_id','required','on'=>'inscripcion'),
			
			
			array('preinscripcion_alumno_nota', 'numerical', 'integerOnly'=>true),
                    
                    
                        
			
			// The following rule is used by search().
			// Please remove those attributes that should not be searched.
			array('preinscripcion_ingreso_periodoingreso_id, 
                                preinscripcion_ingreso_programaacademico_id, 
                                preinscripcion_alumno_persona_tipodocumento_id, 
                                preinscripcion_alumno_persona_numerodocumento, 
                                preinscripcion_ingresocurso_id, 
                                preinscripcion_fecha, 
                                preinscripcion_turno_id, 
                                preinscripcion_turnoeleccion_id, 
                                preinscripcion_fechabaja, 
                                preinscripcion_motivobaja_id, 
                                preinscripcion_observacion, 
                                preinscripcion_aprobocursoingreso, 
                                preinscripcion_ingreso, 
                                preinscripcion_fechacierre, 
                                preinscripcion_fechaingreso, 
                                preinscripcion_cursoequivalente,
                                preinscripcion_alumno_legajo
                                ', 'safe', 'on'=>'search'),
                    
                    array('preinscripcion_ingreso_periodoingreso_id, 
                                preinscripcion_ingreso_programaacademico_id, 
                                preinscripcion_alumno_persona_tipodocumento_id, 
                                preinscripcion_alumno_persona_numerodocumento, 
                                preinscripcion_ingresocurso_id, 
                                preinscripcion_aprobocursoingreso, 
                                preinscripcion_ingreso,                                 
                                preinscripcion_alumno_legajo
                                ', 'safe', 'on'=>'search2'),
		);
	}
	
	/**
	 * @return array relational rules.
	 */
	public function relations()
	{
		// NOTE: you may need to adjust the relation name and the related
		// class name for the relations automatically generated below.
		return array(
                        'tipoDocumento' => array(self::BELONGS_TO, 'TipoDocumento', 'preinscripcion_alumno_persona_tipodocumento_id'),
                    
                        'alumno' => array(
                            self::BELONGS_TO, 
                            'Alumno',
                            'preinscripcion_alumno_persona_tipodocumento_id,preinscripcion_alumno_persona_numerodocumento'),
                    
                    
                        'periodoIngreso' => array(self::BELONGS_TO, 'PeriodoIngreso', 'preinscripcion_ingreso_periodoingreso_id'),
                        'programaAcademico' => array(self::BELONGS_TO, 'ProgramaAcademico', 'preinscripcion_ingreso_programaacademico_id'),
			'ingresoCurso' => array(self::BELONGS_TO, 'IngresoCurso', 'preinscripcion_ingresocurso_id'),
			'documentacionIngresoPersona' => array(
													self::HAS_MANY, 
													'DocumentacionIngresoPersona', 
													'documentacioningresopersona_ingreso_periodoingreso_id,
													 documentacioningresopersona_ingreso_programaacademico_id,
													 documentacioningresopersona_persona_tipodocumento_id,
													 documentacioningresopersona_persona_numerodocumento',
											),
											
			'persona' => array(
									self::BELONGS_TO, 
									'Persona',
									'preinscripcion_alumno_persona_numerodocumento,preinscripcion_alumno_persona_tipodocumento_id'),
									
			'ingreso' => array(
									self::BELONGS_TO, 
									'Ingreso',
									'preinscripcion_ingreso_periodoingreso_id,preinscripcion_ingreso_programaacademico_id',
									),
			'turno' => array(
									self::BELONGS_TO, 
									'Turno',
									'preinscripcion_turno_id',
									),
			
			'turnoEleccion' => array(
									self::BELONGS_TO, 
									'TurnoEleccion',
									'preinscripcion_turnoeleccion_id',
									),
			
			'estado' => array(self::BELONGS_TO, 'Estado', 'preinscripcion_estado_id'),
                        
		);
	}	 	 	 	 	 	 	
	

	/**
	 * @return array customized attribute labels (name=>label)
	 */
	public function attributeLabels()
	{
		return array(
			'preinscripcion_ingreso_periodoingreso_id' => t('Periodo Ingreso','carrera_etiqueta'),
			'preinscripcion_ingreso_programaacademico_id' => t('Programa Academico','carrera_etiqueta'),
			'preinscripcion_alumno_persona_tipodocumento_id' => t('Tipo de Documento','persona_etiqueta'),
			'preinscripcion_alumno_persona_numerodocumento' => t('Numero de Documento','persona_etiqueta'),
			'preinscripcion_ingresocurso_id' => 'Preinscripcion Ingresocurso',
			'preinscripcion_fecha' => 'Preinscripcion Fecha',
			'preinscripcion_turno_id' => 'Preinscripcion Turno',
			'preinscripcion_turnoeleccion_id' => 'Preinscripcion Turnoeleccion',
			'preinscripcion_fechabaja' => 'Preinscripcion Fechabaja',
			'preinscripcion_motivobaja_id' => t('Motivo de Baja','carrera_etiqueta'),
			'preinscripcion_observacion' => 'Preinscripcion Observaciones',
			'preinscripcion_aprobocursoingreso' => 'Preinscripcion Aprobocursoingreso',
			'preinscripcion_ingreso' => 'Preinscripcion Ingreso',
			'preinscripcion_fechacierre' => 'Preinscripcion Fechacierre',
			'preinscripcion_fechaingreso' => 'Preinscripcion Fechaingreso',
			'preinscripcion_cursoequivalente' => 'Preinscripcion Cursoequivalente',
			'preinscripcion_creado' => 'Preinscripcion Creado',
			'preinscripcion_creado_usuario_id' => 'Preinscripcion Creado Usuario',
			'preinscripcion_modificado' => 'Preinscripcion Modificado',
			'preinscripcion_modificado_usuario_id' => 'Preinscripcion Modificado Usuario',
			'preinscripcion_estado_id' => 'Preinscripcion Estado',
		
			'preinscripcion_ingreso_tipoprogramaacademico_id' => t('Tipo Programa Academico','carrera_etiqueta'),
		
			'preinscripcion_alumno_persona_nombres' => t('Nombres','persona_etiqueta'),
			'preinscripcion_alumno_persona_apellido' => t('Apellido','persona_etiqueta'),
		
			'preinscripcion_alumno_nota' => t('Nota','carrera_etiqueta'),
			'preinscripcion_alumno_legajo' => t('Legajo','persona_etiqueta'),
			'preinscripcion_alumno_asistio' => t('Asistio','carrera_etiqueta'),
			'preinscripcion_ingresoactividad_id' => t('Actividad De Ingreso','carrera_etiqueta'),
		
		
		);
	}
	
	
	public function validateCurso()
	{
		if(!is_null($this->preinscripcion_cursoequivalente) && is_null($this->preinscripcion_ingresocurso_id))
		{
			$this->addError('preinscripcion_ingresocurso_id', t('Debe Seleccionar un curso o curso equivalente','carrera_etiqueta'));
		}
	}
	

	/**
	 * Retrieves a list of models based on the current search/filter conditions.
	 * @return CActiveDataProvider the data provider that can return the models based on the search/filter conditions.
	 */
	public function search()
	{
		// Warning: Please modify the following code to remove attributes that
		// should not be searched.
                //echo $this->preinscripcion_alumno_legajo;exit;
		$criteria=new CDbCriteria;

		$criteria->compare('preinscripcion_ingreso_periodoingreso_id',$this->preinscripcion_ingreso_periodoingreso_id,true);
		$criteria->compare('preinscripcion_ingreso_programaacademico_id',$this->preinscripcion_ingreso_programaacademico_id,true);
		$criteria->compare('preinscripcion_alumno_persona_tipodocumento_id',$this->preinscripcion_alumno_persona_tipodocumento_id);
		$criteria->compare('preinscripcion_alumno_persona_numerodocumento',$this->preinscripcion_alumno_persona_numerodocumento,true);
		$criteria->compare('preinscripcion_ingresocurso_id',$this->preinscripcion_ingresocurso_id,true);
		$criteria->compare('preinscripcion_fecha',$this->preinscripcion_fecha,true);
		$criteria->compare('preinscripcion_turno_id',$this->preinscripcion_turno_id);
		$criteria->compare('preinscripcion_turnoeleccion_id',$this->preinscripcion_turnoeleccion_id);
		$criteria->compare('preinscripcion_fechabaja',$this->preinscripcion_fechabaja,true);
		$criteria->compare('preinscripcion_motivobaja_id',$this->preinscripcion_motivobaja_id,true);
		$criteria->compare('preinscripcion_observacion',$this->preinscripcion_observacion,true);
		$criteria->compare('preinscripcion_aprobocursoingreso',$this->preinscripcion_aprobocursoingreso);
		$criteria->compare('preinscripcion_ingreso',$this->preinscripcion_ingreso);
		$criteria->compare('preinscripcion_fechacierre',$this->preinscripcion_fechacierre,true);
		$criteria->compare('preinscripcion_fechaingreso',$this->preinscripcion_fechaingreso,true);
		$criteria->compare('preinscripcion_cursoequivalente',$this->preinscripcion_cursoequivalente);
		$criteria->compare('preinscripcion_creado',$this->preinscripcion_creado,true);
		$criteria->compare('preinscripcion_creado_usuario_id',$this->preinscripcion_creado_usuario_id,true);
		$criteria->compare('preinscripcion_modificado',$this->preinscripcion_modificado,true);
		$criteria->compare('preinscripcion_modificado_usuario_id',$this->preinscripcion_modificado_usuario_id,true);
		$criteria->compare('preinscripcion_estado_id',$this->preinscripcion_estado_id);
                
                $criteria->compare('alumno.alumno_legajo',$this->preinscripcion_alumno_legajo,true);
                $criteria->with = 'alumno';
		
		$resultado = new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
                //$resultado->getData();
                //var_dump(Yii::getLogger()->getLogs());exit;
                return $resultado;
	}
	
	/*
	protected function afterFind()
	{
		$this->preinscripcion_creado = ($this->preinscripcion_creado != '0000-00-00 00:00:00' && !is_null($this->preinscripcion_creado))?date('d/m/Y H:i:s', strtotime(str_replace('-','/',$this->preinscripcion_creado))):'';
		$this->preinscripcion_modificado = ($this->preinscripcion_modificado != '0000-00-00 00:00:00' && !is_null($this->preinscripcion_modificado))?date('d/m/Y H:i:s', strtotime(str_replace('-','/',$this->preinscripcion_modificado))):'';
		return TRUE;
	}
	
	protected function beforeSave()
	{
		if(!$this->isNewRecord)
		{
			if($this->preinscripcion_creado == '')
			{
				$this->preinscripcion_creado = new CDbExpression('NOW()');
			}
			else
			{
				$this->preinscripcion_creado = date('Y-m-d H:i:s', strtotime(str_replace('/','-',$this->preinscripcion_creado)));
			}
			$this->preinscripcion_creado_usuario_id =  user()->getId();
		}
		else
		{
			$this->preinscripcion_modificado = new CDbExpression('NOW()');
			$this->preinscripcion_modificado_usuario_id =  user()->getId();
		}
		return TRUE;
	}
    */   
        public function getAproboCursoIngreso(){
            $resultado = t('Reprobo','carrera_etiqueta');
            if(is_null($this->preinscripcion_aprobocursoingreso))
            {
                $resultado =  t('No Aplica','carrera_etiqueta');
            }
            elseif($this->preinscripcion_aprobocursoingreso)
            {
                $resultado = t('Aprobo','carrera_etiqueta');
            }
            
            if(is_null($this->preinscripcion_fechacierre))
            {
                $resultado .= ' ['.t('Falta Cierre','carrera_etiqueta').']';
            }
            return $resultado;
            
        }
	
        public function search2()
	{
		$criteria=new CDbCriteria;

		$criteria->compare('preinscripcion_ingreso_periodoingreso_id',$this->preinscripcion_ingreso_periodoingreso_id,true);
		$criteria->compare('preinscripcion_ingreso_programaacademico_id',$this->preinscripcion_ingreso_programaacademico_id,true);
		$criteria->compare('preinscripcion_ingresocurso_id',$this->preinscripcion_ingresocurso_id,true);
                $criteria->compare('alumno.alumno_legajo',$this->preinscripcion_alumno_legajo,true);
                $criteria->select = 'tpi.*';
                $criteria->alias = 'tpi';
                        
                        
                $criteria->with = array('alumno','tipoDocumento');
		
		$resultado = new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
                //$resultado->getData();
                //var_dump(Yii::getLogger()->getLogs());exit;
                return $resultado;
	}
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        
}